#include <stdio.h>

int n, m;
int w[50];
int a[50];

int max(int w[50], int n) {
    int res = 0;
    for(int i = 0; i < n; i++) {
        if(w[i] > res){
            res = w[i];
        }
    }

    return res;
}

int min(int a[50]) {
    int res = 10000;
    int index = 0;
    for(int i = 0; i < m; i++) {
        if(a[i] < res) {
            res = a[i];
            index = i;
        }
    }

    return index;
}


int main()
{
    scanf("%d %d", &n, &m);
    for(int i = 0; i < n; i++) {
        scanf("%d", &w[i]);
    }

    if(n <= m) {
        printf("%d\n", max(w, n));
    }

    for(int i = 0; i < m; i++) {
        a[i] = w[i];
    }

    for(int i = m; i < n; i++) {
        int index = min(a);
        a[index] += w[i];
    }

    printf("%d\n", max(a, m));

}
